【js基础】对浅拷贝和数组push()方法的一点理解

您所在的位置:网站首页 js 复制数组 到新的数组中的数据 【js基础】对浅拷贝和数组push()方法的一点理解

【js基础】对浅拷贝和数组push()方法的一点理解

2024-07-05 18:00| 来源: 网络整理| 查看: 265

浅拷贝

前提:JS中的变量都是保存到栈内存中的。 总结:基本数据类型和引用数据类型的变量(指针)是存在栈中,浅拷贝只拷贝了栈中的,所以会拷贝基本数据类型的值(数据有新内存)和引用数据类型的指针(数据没有新的内存)。 浅拷贝对象套对象的那种,就是对象属性又有对象的,只会拷贝一层,如果拷贝后修改里层对象的属性,原始数据的里层也会变化。

对于基本数据类型

基本数据类型的值在栈内存中存储,每一个都在栈中有一个独立的内存空间。

对于引用数据类型

是拷贝了一层的,拷贝的就是内存地址,所有的对象都指向这个地址的值,只要有一个对象对此地址的值进行改变,所有对象取到的值都会变化。

push()方法

当push()添加引用数据类型时(数组,对象)都是浅拷贝,当添加的项发生改变时,原来的数据也会发生变化。

图例 对象中的基本数据类型被拷贝后改变,原始数据没有被改变

在这里插入图片描述

对象中的引用数据类型被拷贝后改变,原始数据改变了

在这里插入图片描述

push()对于引用数据类型也是浅拷贝

改变push后的属性值,原属性值也变了: 改test里面的肯定也会变。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3